using AForge.Imaging;
using AForge.Video;
using System;
using System.Drawing;
namespace SilverSea.Video.Tools
{
	public interface IVideoSourcePlayer
	{
		event NewFrameHandler NewFrame;
		event VideoSourceErrorEventHandler VideoSourceError;
		event VideoWriterFinishEventHandler VideoWriterFinish;
		IVideoSource VideoSource
		{
			get;
			set;
		}
		System.Drawing.Color BorderColor
		{
			get;
			set;
		}
		System.Drawing.Color MotionRectangleColor
		{
			get;
			set;
		}
		int MotionRectangleLineWidth
		{
			get;
			set;
		}
		System.Drawing.Rectangle[] MotionRectangles
		{
			get;
			set;
		}
		string TextOverlay
		{
			get;
			set;
		}
		TextOverlayLocation TextOverlayLocation
		{
			get;
			set;
		}
		System.Drawing.Color TextOverlayColor
		{
			get;
			set;
		}
		bool EnableRecording
		{
			get;
			set;
		}
		int RecordingRate
		{
			get;
			set;
		}
		string RecordingCodec
		{
			get;
			set;
		}
		int VideoLengthLimit
		{
			get;
			set;
		}
		string VideoFolder
		{
			get;
			set;
		}
		DateTime LastTimeReceivedFrame
		{
			get;
			set;
		}
		float FPS
		{
			get;
		}
		float BPS
		{
			get;
		}
		bool IsRunning
		{
			get;
		}
		void Start();
		void SignalToStop();
		void Stop();
		void StartRecording();
		void StopRecording();
		void SaveCurrentVideoFrame(string path);
		System.Drawing.Bitmap GetCurrentVideoFrame();
		UnmanagedImage GetCurrentUnmanagedVideoFrame();
	}
}
